package org.meteorshower.employee_depart.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 部门类，映射完成
 * @table department
 * */
@Data
@Accessors(chain = true)
@TableName ("department")
public class Department implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 部门ID
     * */
    @TableField ("dept_id")
    private Integer deptId;
    /**
     * 部门名称
     * */
    @TableField ("dept_name")
    private String name;
    /**
     * 部门创建时间
     * */
    @TableField ("dept_create_date")
    private Date createDate;
    /**
     * 部门人数
     * */
    @TableField ("dept_employee_count")
    private Integer employeeCount;
    /**
     * 部门描述
     * */
    @TableField ("dept_remark")
    private String remark;
    /**
     * 部门负责人
     * */
    @TableField ("e_id")
    private Employee eId;
    /**
     * 所属父级部门
     * */
    @TableField ("parent_id")
    private Integer parentId;
    /**
     * 当前部门是否启用
     * */
    @TableField ("enabled")
    private Boolean enabled = true;
    /**
     * 是否为部门大类
     * */
    @TableField ("is_parent")
    private Boolean isParent = false;
    /**
     * 若为大类，则显示子部门
     * */
    @TableField (exist = false)
    private List<Department> children = new ArrayList<>();
}
